package com.ctshk.rpc.order.custom.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.rpc.order.custom.dto.order.ApprovalQuitInfoDTO;
import com.ctshk.rpc.order.custom.dto.order.CustomOrderTouristQuitListDTO;
import com.ctshk.rpc.order.custom.dto.order.CustomOrderTouristQuitNoticeDetailDTO;
import com.ctshk.rpc.order.custom.req.order.*;

/**
 * <p>
 * 游客退团 服务类
 * </p>
 *
 * @author 叶冠峰
 * @since 2021-02-22
 */
public interface ICustomizedOrderTouristQuitService {

    /**
     * 游客退团列表
     * @param req
     * @return
     */
    PageResponse<CustomOrderTouristQuitListDTO> list(CustomOrderTouristQuitListReq req);

    /**
     * 申請退團
     * @param req
     * @return
     */
    Result add(CustomOrderTouristQuitAddReq req);

    /**
     * 退團通知書
     * @param req
     * @return
     */
    Result<CustomOrderTouristQuitNoticeDetailDTO> notice(CustomOrderTouristQuitIdReq req);

    /**
     * 操作退款
     * @param req
     * @return
     */
    Result confirm(CustomOrderTouristQuitConfirmReq req);

    /**
     * 撤回
     * @param req
     * @return
     */
    Result withdraw(CustomOrderTouristQuitIdReq req);

    /**
     * 添加计算
     * @param req
     * @return
     */
    Result addCalculation(CustomOrderTouristQuitAddCalculationReq req);

    /**
     * 审批
     * @param req
     * @return
     */
    Result approval(ApprovalQuitReq req);

    /**
     * 审批中心-退团信息
     * @param req
     * @return
     */
    Result<ApprovalQuitInfoDTO> approvalQuitInfo(ApprovalIdReq req);
}
